From cf7888fdafc3cae2ae6742969524e9995c3ea141 Mon Sep 17 00:00:00 2001 From: "CST 1999 Shawn T. Amundson" Date: Thu, 25 Feb 1999 08:17:13 +0000 Subject: [PATCH] New function gtk_menu_reorder_child() from Tim Janik. Thu Feb 25 02:13:20 CST 1999 Shawn T. Amundson * gtk/gtkmenu.[ch]: New function gtk_menu_reorder_child() from Tim Janik. This will be used in GIMP, so it is tested there. --- ChangeLog | 5 +++++ ChangeLog.pre-2-0 | 5 +++++ ChangeLog.pre-2-10 | 5 +++++ ChangeLog.pre-2-2 | 5 +++++ ChangeLog.pre-2-4 | 5 +++++ ChangeLog.pre-2-6 | 5 +++++ ChangeLog.pre-2-8 | 5 +++++ gtk/gtkmenu.c | 18 ++++++++++++++++++ gtk/gtkmenu.h | 4 ++++ 9 files changed, 57 insertions(+) diff --git a/ChangeLog b/ChangeLog index 67f4464c2f..203836ffc8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Feb 25 02:13:20 CST 1999 Shawn T. Amundson + + * gtk/gtkmenu.[ch]: New function gtk_menu_reorder_child() + from Tim Janik. + Thu Feb 25 00:48:51 1999 Owen Taylor * gtk/gtkfontsel.c: Don't access *bitmapped_sizes diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 67f4464c2f..203836ffc8 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,8 @@ +Thu Feb 25 02:13:20 CST 1999 Shawn T. Amundson + + * gtk/gtkmenu.[ch]: New function gtk_menu_reorder_child() + from Tim Janik. + Thu Feb 25 00:48:51 1999 Owen Taylor * gtk/gtkfontsel.c: Don't access *bitmapped_sizes diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 67f4464c2f..203836ffc8 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +Thu Feb 25 02:13:20 CST 1999 Shawn T. Amundson + + * gtk/gtkmenu.[ch]: New function gtk_menu_reorder_child() + from Tim Janik. + Thu Feb 25 00:48:51 1999 Owen Taylor * gtk/gtkfontsel.c: Don't access *bitmapped_sizes diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 67f4464c2f..203836ffc8 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,8 @@ +Thu Feb 25 02:13:20 CST 1999 Shawn T. Amundson + + * gtk/gtkmenu.[ch]: New function gtk_menu_reorder_child() + from Tim Janik. + Thu Feb 25 00:48:51 1999 Owen Taylor * gtk/gtkfontsel.c: Don't access *bitmapped_sizes diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 67f4464c2f..203836ffc8 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,8 @@ +Thu Feb 25 02:13:20 CST 1999 Shawn T. Amundson + + * gtk/gtkmenu.[ch]: New function gtk_menu_reorder_child() + from Tim Janik. + Thu Feb 25 00:48:51 1999 Owen Taylor * gtk/gtkfontsel.c: Don't access *bitmapped_sizes diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 67f4464c2f..203836ffc8 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +Thu Feb 25 02:13:20 CST 1999 Shawn T. Amundson + + * gtk/gtkmenu.[ch]: New function gtk_menu_reorder_child() + from Tim Janik. + Thu Feb 25 00:48:51 1999 Owen Taylor * gtk/gtkfontsel.c: Don't access *bitmapped_sizes diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 67f4464c2f..203836ffc8 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +Thu Feb 25 02:13:20 CST 1999 Shawn T. Amundson + + * gtk/gtkmenu.[ch]: New function gtk_menu_reorder_child() + from Tim Janik. + Thu Feb 25 00:48:51 1999 Owen Taylor * gtk/gtkfontsel.c: Don't access *bitmapped_sizes diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c index 2808b50c51..207f9cc0ce 100644 --- a/gtk/gtkmenu.c +++ b/gtk/gtkmenu.c @@ -669,6 +669,24 @@ gtk_menu_set_title (GtkMenu *menu, g_strdup (title), (GtkDestroyNotify) g_free); } +void +gtk_menu_reorder_child (GtkMenu *menu, + GtkWidget *child, + gint position) +{ + GtkMenuShell *menu_shell; + g_return_if_fail (GTK_IS_MENU (menu)); + g_return_if_fail (GTK_IS_MENU_ITEM (child)); + menu_shell = GTK_MENU_SHELL (menu); + if (g_list_find (menu_shell->children, child)) + { + menu_shell->children = g_list_remove (menu_shell->children, child); + menu_shell->children = g_list_insert (menu_shell->children, child, position); + if (GTK_WIDGET_VISIBLE (menu_shell)) + gtk_widget_queue_resize (GTK_WIDGET (menu_shell)); + } +} + static void gtk_menu_realize (GtkWidget *widget) { diff --git a/gtk/gtkmenu.h b/gtk/gtkmenu.h index 4df8fd0a18..7e37a0bcd6 100644 --- a/gtk/gtkmenu.h +++ b/gtk/gtkmenu.h @@ -145,6 +145,10 @@ void gtk_menu_set_tearoff_state (GtkMenu *menu, void gtk_menu_set_title (GtkMenu *menu, const gchar *title); +void gtk_menu_reorder_child (GtkMenu *menu, + GtkWidget *child, + gint position); + #ifdef __cplusplus } #endif /* __cplusplus */ -- 2.30.2